##%%#####***********#*****###*************#**####**#######*++++*****#
###*###************###*+++**##***++++++++*++**##*###****************#
#####****#*********####****###******+++**++**###***************+++++*
#**#*****************#*#**###***************************++++++++++++*
##*******************#*+====+#*******************++++++++++++++++****
#********************+====+*+*************+++**+++++++++++++++++++++*
#*#*****************##+===*#***%#******************************+++++*
##******************%#*===#######***********************************#
#***********+*******#*****#######***********************************#
************++++++++**++****%#*#*+****+*****++++++******************#
*++**********++++++**+****+##+#%++=+++++++++************************#
*+************++++********###****#*+===+++++++++++++++++++++++******#
*+************++++**++****+*******##**+====++++++++++++++++++++++=-=*
****************++**++****++********++++++====++++++++++++++++++++=+*
********************++++++++*****++++++++++++====+++++++++++++++++++*
**********************+++++++++*******++++++++++=-==++++++++++++++++*
********************+++++++***+++*****+++++++++++++====+++++++++++++*
****************#*****++++++++++++******++++++++++++++==-=++++++++++*
***************##*******++++++++++++*****++++++++++++++++=--==++++++*
***************##********+++++++++++++*****+++++++++++++++++==-==+++*
**************###**********+++++++++++++****+++++++++++++++++++==-==*
**************###*********+++++++++++++++*****+++++++++++++++++++===+
%#############%%%%%%%#######################%%#####################*#